package org.lanqiao.tjut.db;

import java.io.InputStream;

import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.lanqiao.tjut.test.MybatisTestDriver;

public class DBDriver {
	// 静态的成员变量
	private static SqlSessionFactory sessionFatory;

	private DBDriver() {
		// 阻止外部new方式的创建实例对象
	}

	/**
	 * 单例模式获取SqlSessionFactory对象
	 * 
	 * @return sessionFatory
	 */
	public static SqlSessionFactory getNewInstanceSessionFactory() {
		if (sessionFatory == null) {
			// 创建该对象
			/*
			 * // 1 获取Mybatis的属性配置文件信息 InputStream is =
			 * MybatisTestDriver.class.getClassLoader().getResourceAsStream(
			 * "mybatis-config.xml"); // 1.2 获取数据库连接属性的配置文件 Properties prop =
			 * new Properties(); // 加载属性配置文件
			 * prop.load(MybatisTestDriver.class.getClassLoader().
			 * getResourceAsStream("db.properties")); // 2 获取sqlsessionFactory对象
			 * sessionFatory = new SqlSessionFactoryBuilder().build(is, prop);
			 */

			// 1 获取Mybatis的属性配置文件信息
			InputStream is = MybatisTestDriver.class.getClassLoader().getResourceAsStream("mybatis-config.xml");
			// 2 获取sqlsessionFactory对象
			sessionFatory = new SqlSessionFactoryBuilder().build(is);

			// 没有处理线程安全，如何处理？
		}
		// 返回该对象
		return sessionFatory;
	}

}
